home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Add-Ons / CodeWarrior / DASM 2.0 / DASM Src.sit / SRC / EVAL.C < prev    next >
MacBinary  |  1997-04-16  |  9.4 KB  |  [TEXT/dosa]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Wed Apr 16 10:09:50 1997, modified Wed Apr 16 10:09:50 1997, creator Macintosh MS-DOS file system, type ASCII, 8940 bytes "EVAL.C" , at 0x236c 410 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-4K) default (weak)
16% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[dosa]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 45 56 41 4c 2e 43 | 00 00 00 00 00 00 00 00 |..EVAL.C|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 64 6f 73 | 61 01 00 00 00 00 00 00 |.TEXTdos|a.......|
|00000050| 00 00 00 00 00 22 ec 00 | 00 01 9a af 7a 8e 2e af |....."..|....z...|
|00000060| 7a 8e 2e 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |z.......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 3b 7d 00 00 |........|....;}..|
|00000080| 2f 2f 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |//======|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|000000d0| 0a 2f 2f 20 45 76 61 6c | 75 61 74 65 73 2c 20 74 |.// Eval|uates, t|
|000000e0| 6f 6b 65 6e 69 7a 65 73 | 20 61 6e 20 65 78 70 72 |okenizes| an expr|
|000000f0| 65 73 73 69 6f 6e 2c 20 | 61 6e 64 20 72 65 74 75 |ession, |and retu|
|00000100| 72 6e 73 20 61 20 76 61 | 6c 75 65 20 28 6f 72 20 |rns a va|lue (or |
|00000110| 65 72 72 6f 72 29 0d 0a | 2f 2f 09 28 74 6f 6b 65 |error)..|//.(toke|
|00000120| 6e 69 7a 61 74 69 6f 6e | 20 63 6f 64 65 20 66 6f |nization| code fo|
|00000130| 75 6e 64 20 69 6e 20 54 | 4f 4b 45 4e 2e 43 20 66 |und in T|OKEN.C f|
|00000140| 69 6c 65 29 0d 0a 2f 2f | 0d 0a 2f 2f 20 57 72 69 |ile)..//|..// Wri|
|00000150| 74 74 65 6e 20 62 79 20 | 4c 61 6e 65 20 52 6f 61 |tten by |Lane Roa|
|00000160| 74 68 65 0d 0a 2f 2f 20 | 28 63 29 20 43 6f 70 79 |the..// |(c) Copy|
|00000170| 72 69 67 68 74 20 31 39 | 39 35 20 49 64 65 61 73 |right 19|95 Ideas|
|00000180| 20 46 72 6f 6d 20 74 68 | 65 20 44 65 65 70 2c 20 | From th|e Deep, |
|00000190| 4c 74 64 2e 20 41 6c 6c | 20 52 69 67 68 74 73 20 |Ltd. All| Rights |
|000001a0| 52 65 73 65 72 76 65 64 | 21 0d 0a 2f 2f 0d 0a 2f |Reserved|!..//../|
|000001b0| 2f 20 52 45 4c 45 41 53 | 45 20 4e 4f 54 45 53 3a |/ RELEAS|E NOTES:|
|000001c0| 0d 0a 2f 2f 0d 0a 2f 2f | 09 54 68 69 73 20 63 6f |..//..//|.This co|
|000001d0| 64 65 20 69 73 20 72 65 | 6c 65 61 73 65 64 20 61 |de is re|leased a|
|000001e0| 73 20 43 6f 64 65 57 61 | 72 65 2c 20 6d 65 61 6e |s CodeWa|re, mean|
|000001f0| 69 6e 67 20 74 68 61 74 | 20 79 6f 75 20 61 72 65 |ing that| you are|
|00000200| 20 66 72 65 65 20 74 6f | 20 75 73 65 20 69 74 2c | free to| use it,|
|00000210| 0d 0a 2f 2f 09 69 6e 20 | 65 78 63 68 61 6e 67 65 |..//.in |exchange|
|00000220| 20 66 6f 72 20 73 65 6e | 64 69 6e 67 20 4c 61 6e | for sen|ding Lan|
|00000230| 65 20 52 6f 61 74 68 65 | 20 3c 6c 72 6f 61 74 68 |e Roathe| <lroath|
|00000240| 65 40 78 74 72 65 6d 65 | 70 6c 61 6e 65 74 2e 63 |e@xtreme|planet.c|
|00000250| 6f 6d 3e 20 61 20 75 74 | 69 6c 69 74 79 20 61 6e |om> a ut|ility an|
|00000260| 64 2f 6f 72 0d 0a 2f 2f | 09 70 69 65 63 65 20 6f |d/or..//|.piece o|
|00000270| 66 20 73 6f 75 72 63 65 | 20 63 6f 64 65 20 6f 66 |f source| code of|
|00000280| 20 73 69 6d 69 6c 61 72 | 20 76 61 6c 75 65 2e 20 | similar| value. |
|00000290| 59 6f 75 20 6d 61 79 20 | 64 69 73 74 72 69 62 75 |You may |distribu|
|000002a0| 74 65 20 74 68 69 73 20 | 63 6f 64 65 20 66 72 65 |te this |code fre|
|000002b0| 65 6c 79 2c 0d 0a 2f 2f | 09 61 73 20 6c 6f 6e 67 |ely,..//|.as long|
|000002c0| 20 61 73 20 69 74 20 69 | 73 20 64 69 73 74 72 69 | as it i|s distri|
|000002d0| 62 75 74 65 64 20 61 73 | 20 61 6e 20 65 6e 74 69 |buted as| an enti|
|000002e0| 72 65 20 70 61 63 6b 61 | 67 65 20 77 69 74 68 6f |re packa|ge witho|
|000002f0| 75 74 20 6d 6f 64 69 66 | 69 63 61 74 69 6f 6e 73 |ut modif|ications|
|00000300| 21 0d 0a 2f 2f 0d 0a 2f | 2f 09 49 66 20 79 6f 75 |!..//../|/.If you|
|00000310| 20 75 73 65 20 61 6e 79 | 20 6f 66 20 74 68 69 73 | use any| of this|
|00000320| 20 63 6f 64 65 2c 20 70 | 6c 65 61 73 65 20 67 69 | code, p|lease gi|
|00000330| 76 65 20 4c 61 6e 65 20 | 52 6f 61 74 68 65 20 63 |ve Lane |Roathe c|
|00000340| 72 65 64 69 74 2e 20 54 | 68 61 6e 6b 73 21 0d 0a |redit. T|hanks!..|
|00000350| 2f 2f 0d 0a 2f 2f 09 49 | 66 20 79 6f 75 20 6d 61 |//..//.I|f you ma|
|00000360| 6b 65 20 6d 6f 64 69 66 | 69 63 61 74 69 6f 6e 73 |ke modif|ications|
|00000370| 20 79 6f 75 27 64 20 6c | 69 6b 65 20 74 6f 20 73 | you'd l|ike to s|
|00000380| 65 65 20 69 6e 20 74 68 | 65 20 64 69 73 74 72 69 |ee in th|e distri|
|00000390| 62 75 74 69 6f 6e 20 70 | 61 63 6b 61 67 65 2c 0d |bution p|ackage,.|
|000003a0| 0a 2f 2f 09 70 6c 65 61 | 73 65 20 66 65 65 6c 20 |.//.plea|se feel |
|000003b0| 66 72 65 65 20 74 6f 20 | 73 65 6e 64 20 74 68 65 |free to |send the|
|000003c0| 6d 20 74 6f 20 4c 61 6e | 65 20 77 2f 61 20 6e 6f |m to Lan|e w/a no|
|000003d0| 74 65 2e 20 4d 6f 73 74 | 20 6c 69 6b 65 6c 79 20 |te. Most| likely |
|000003e0| 69 74 20 77 69 6c 6c 20 | 68 61 70 70 65 6e 2e 0d |it will |happen..|
|000003f0| 0a 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|00000400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000430| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 0a 2f 2f 20 30 36 2d |--------|..// 06-|
|00000440| 31 32 2d 39 35 20 4c 52 | 20 3a 63 72 65 61 74 69 |12-95 LR| :creati|
|00000450| 6f 6e 20 66 6f 72 20 44 | 41 53 4d 2c 20 73 65 65 |on for D|ASM, see|
|00000460| 6d 73 20 74 6f 20 77 6f | 72 6b 2e 2e 2e 0d 0a 2f |ms to wo|rk...../|
|00000470| 2f 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |/=======|========|
|00000480| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000490| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000004a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000004b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0a |========|======..|
|000004c0| 0d 0a 23 69 6e 63 6c 75 | 64 65 20 22 69 6e 63 6c |..#inclu|de "incl|
|000004d0| 75 64 65 73 2e 68 22 09 | 2f 2f 20 72 65 71 75 69 |udes.h".|// requi|
|000004e0| 72 65 64 20 74 6f 20 63 | 72 65 61 74 65 20 50 43 |red to c|reate PC|
|000004f0| 48 20 6f 6e 20 50 43 2c | 20 65 6d 70 74 79 20 6f |H on PC,| empty o|
|00000500| 6e 20 4d 61 63 0d 0a 0d | 0a 74 6f 6b 65 6e 09 54 |n Mac...|.token.T|
|00000510| 6f 6b 65 6e 53 74 72 65 | 61 6d 5b 32 35 31 5d 3b |okenStre|am[251];|
|00000520| 09 09 2f 2f 20 70 61 72 | 73 65 72 20 72 65 71 75 |..// par|ser requ|
|00000530| 69 72 65 73 20 62 75 66 | 66 65 72 20 74 6f 20 73 |ires buf|fer to s|
|00000540| 74 6f 72 65 20 74 6f 6b | 65 6e 73 20 69 6e 0d 0a |tore tok|ens in..|
|00000550| 0d 0a 23 64 65 66 69 6e | 65 20 70 62 75 6d 70 20 |..#defin|e pbump |
|00000560| 2a 28 2a 70 29 2b 2b 0d | 0a 0d 0a 2f 2f 3d 3d 3d |*(*p)++.|...//===|
|00000570| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000580| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000590| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000005a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000005b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0a 2f 2f 09 45 |========|==..//.E|
|000005c0| 76 61 6c 56 61 72 0d 0a | 2f 2f 0d 0a 2f 2f 09 45 |valVar..|//..//.E|
|000005d0| 76 61 6c 75 61 74 65 20 | 61 20 76 61 72 69 61 62 |valuate |a variab|
|000005e0| 6c 65 0d 0a 2f 2f 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |le..//==|========|
|000005f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000600| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000610| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000620| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000630| 3d 3d 3d 0d 0a 0d 0a 4f | 53 45 72 72 20 45 76 61 |===....O|SErr Eva|
|00000640| 6c 56 61 72 28 20 55 4c | 4f 4e 47 20 2a 20 6c 76 |lVar( UL|ONG * lv|
|00000650| 61 6c 75 65 2c 20 74 6f | 6b 65 6e 20 2a 20 2a 20 |alue, to|ken * * |
|00000660| 70 20 29 0d 0a 7b 0d 0a | 09 69 6e 74 09 69 3b 0d |p )..{..|.int.i;.|
|00000670| 0a 09 55 4c 4f 4e 47 20 | 6a 2c 6b 3b 0d 0a 09 6a |..ULONG |j,k;...j|
|00000680| 20 3d 20 30 4c 3b 0d 0a | 09 66 6f 72 20 28 69 20 | = 0L;..|.for (i |
|00000690| 3d 20 30 3b 20 69 20 3c | 20 33 32 20 3b 20 69 20 |= 0; i <| 32 ; i |
|000006a0| 2b 3d 20 38 20 29 20 7b | 0d 0a 09 09 6b 20 3d 20 |+= 8 ) {|....k = |
|000006b0| 28 55 4c 4f 4e 47 29 20 | 28 28 55 4c 4f 4e 47 29 |(ULONG) |((ULONG)|
|000006c0| 28 2a 28 2a 70 29 2b 2b | 29 20 3c 3c 20 69 29 3b |(*(*p)++|) << i);|
|000006d0| 0d 0a 09 09 6a 20 7c 3d | 20 6b 3b 0d 0a 09 09 7d |....j |=| k;....}|
|000006e0| 0d 0a 09 2a 6c 76 61 6c | 75 65 20 3d 20 6a 3b 0d |...*lval|ue = j;.|
|000006f0| 0a 09 72 65 74 75 72 6e | 20 4e 4f 45 52 52 3b 0d |..return| NOERR;.|
|00000700| 0a 7d 0d 0a 0d 0a 2f 2f | 3d 3d 3d 3d 3d 3d 3d 3d |.}....//|========|
|00000710| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000720| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000730| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000740| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000750| 3d 3d 3d 3d 3d 0d 0a 2f | 2f 09 45 76 61 6c 45 78 |=====../|/.EvalEx|
|00000760| 70 72 65 73 73 69 6f 6e | 0d 0a 2f 2f 0d 0a 2f 2f |pression|..//..//|
|00000770| 09 47 69 76 65 6e 20 61 | 20 74 6f 6b 65 6e 20 70 |.Given a| token p|
|00000780| 6f 69 6e 74 65 72 2c 20 | 65 76 61 6c 75 61 74 65 |ointer, |evaluate|
|00000790| 20 77 68 61 74 20 74 68 | 65 20 76 61 6c 75 65 20 | what th|e value |
|000007a0| 61 74 20 74 68 61 74 20 | 70 6f 69 6e 74 20 65 76 |at that |point ev|
|000007b0| 61 6c 75 61 74 65 73 20 | 74 6f 0d 0a 2f 2f 3d 3d |aluates |to..//==|
|000007c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000007d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000007e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000007f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000800| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0a 0d 0a 4f |========|===....O|
|00000810| 53 45 72 72 20 45 76 61 | 6c 45 78 70 72 65 73 73 |SErr Eva|lExpress|
|00000820| 69 6f 6e 20 28 20 55 4c | 4f 4e 47 20 2a 20 6c 76 |ion ( UL|ONG * lv|
|00000830| 61 6c 75 65 20 2c 20 74 | 6f 6b 65 6e 20 2a 2a 20 |alue , t|oken ** |
|00000840| 70 20 29 0d 0a 7b 0d 0a | 09 4f 53 45 72 72 20 65 |p )..{..|.OSErr e|
|00000850| 72 72 6f 72 3b 0d 0a 09 | 6c 6f 6e 67 20 72 76 61 |rror;...|long rva|
|00000860| 6c 75 65 31 3b 0d 0a 09 | 6c 6f 6e 67 20 72 76 61 |lue1;...|long rva|
|00000870| 6c 75 65 32 3b 0d 0a 0d | 0a 09 69 66 28 20 28 65 |lue2;...|..if( (e|
|00000880| 72 72 6f 72 20 3d 20 45 | 76 61 6c 46 61 63 74 6f |rror = E|valFacto|
|00000890| 72 28 20 28 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |r( (unsi|gned lon|
|000008a0| 67 20 2a 29 26 72 76 61 | 6c 75 65 31 2c 20 70 20 |g *)&rva|lue1, p |
|000008b0| 29 29 20 21 3d 20 6e 6f | 45 72 72 20 29 0d 0a 09 |)) != no|Err )...|
|000008c0| 09 72 65 74 75 72 6e 20 | 65 72 72 6f 72 3b 0d 0a |.return |error;..|
|000008d0| 0d 0a 09 73 77 69 74 63 | 68 28 70 62 75 6d 70 29 |...switc|h(pbump)|
|000008e0| 0d 0a 09 7b 0d 0a 09 09 | 63 61 73 65 20 54 4f 4b |...{....|case TOK|
|000008f0| 45 4e 5f 45 4e 44 3a 0d | 0a 09 09 63 61 73 65 20 |EN_END:.|...case |
|00000900| 54 4f 4b 45 4e 5f 52 50 | 41 52 45 4e 3a 0d 0a 09 |TOKEN_RP|AREN:...|
|00000910| 09 09 2a 6c 76 61 6c 75 | 65 20 3d 20 72 76 61 6c |..*lvalu|e = rval|
|00000920| 75 65 31 3b 0d 0a 09 09 | 09 72 65 74 75 72 6e 20 |ue1;....|.return |
|00000930| 4e 4f 45 52 52 3b 0d 0a | 0d 0a 09 09 63 61 73 65 |NOERR;..|....case|
|00000940| 20 54 4f 4b 45 4e 5f 45 | 51 55 41 4c 3a 0d 0a 09 | TOKEN_E|QUAL:...|
|00000950| 09 09 69 66 20 28 20 21 | 28 65 72 72 6f 72 20 3d |..if ( !|(error =|
|00000960| 20 45 76 61 6c 45 78 70 | 72 65 73 73 69 6f 6e 20 | EvalExp|ression |
|00000970| 28 20 28 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |( (unsig|ned long|
|00000980| 20 2a 29 26 72 76 61 6c | 75 65 32 2c 20 70 20 29 | *)&rval|ue2, p )|
|00000990| 29 29 20 7b 0d 0a 09 09 | 09 09 09 2a 6c 76 61 6c |)) {....|...*lval|
|000009a0| 75 65 20 3d 20 28 72 76 | 61 6c 75 65 31 20 3d 3d |ue = (rv|alue1 ==|
|000009b0| 20 72 76 61 6c 75 65 32 | 3f 31 3a 30 29 3b 0d 0a | rvalue2|?1:0);..|
|000009c0| 09 09 09 09 09 72 65 74 | 75 72 6e 20 4e 4f 45 52 |.....ret|urn NOER|
|000009d0| 52 3b 0d 0a 09 09 09 09 | 09 7d 0d 0a 09 09 09 09 |R;......|.}......|
|000009e0| 65 6c 73 65 0d 0a 09 09 | 09 09 09 72 65 74 75 72 |else....|...retur|
|000009f0| 6e 20 65 72 72 6f 72 3b | 0d 0a 0d 0a 09 09 63 61 |n error;|......ca|
|00000a00| 73 65 20 54 4f 4b 45 4e | 5f 4e 4f 54 45 51 55 41 |se TOKEN|_NOTEQUA|
|00000a10| 4c 3a 0d 0a 09 09 09 69 | 66 20 28 20 21 28 65 72 |L:.....i|f ( !(er|
|00000a20| 72 6f 72 20 3d 20 45 76 | 61 6c 45 78 70 72 65 73 |ror = Ev|alExpres|
|00000a30| 73 69 6f 6e 20 28 20 28 | 75 6e 73 69 67 6e 65 64 |sion ( (|unsigned|
|00000a40| 20 6c 6f 6e 67 20 2a 29 | 26 72 76 61 6c 75 65 32 | long *)|&rvalue2|
|00000a50| 2c 20 70 20 29 29 29 20 | 7b 0d 0a 09 09 09 09 09 |, p ))) |{.......|
|00000a60| 2a 6c 76 61 6c 75 65 20 | 3d 20 28 72 76 61 6c 75 |*lvalue |= (rvalu|
|00000a70| 65 31 20 21 3d 20 72 76 | 61 6c 75 65 32 3f 31 3a |e1 != rv|alue2?1:|
|00000a80| 30 29 3b 0d 0a 09 09 09 | 09 09 72 65 74 75 72 6e |0);.....|..return|
|00000a90| 20 4e 4f 45 52 52 3b 0d | 0a 09 09 09 09 09 7d 0d | NOERR;.|......}.|
|00000aa0| 0a 09 09 09 09 65 6c 73 | 65 0d 0a 09 09 09 09 09 |.....els|e.......|
|00000ab0| 72 65 74 75 72 6e 20 65 | 72 72 6f 72 3b 0d 0a 0d |return e|rror;...|
|00000ac0| 0a 0d 0a 09 09 63 61 73 | 65 20 54 4f 4b 45 4e 5f |.....cas|e TOKEN_|
|00000ad0| 47 52 45 41 54 45 52 54 | 48 41 4e 3a 0d 0a 09 09 |GREATERT|HAN:....|
|00000ae0| 09 69 66 20 28 20 21 28 | 65 72 72 6f 72 20 3d 20 |.if ( !(|error = |
|00000af0| 45 76 61 6c 45 78 70 72 | 65 73 73 69 6f 6e 20 28 |EvalExpr|ession (|
|00000b00| 20 28 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 | (unsign|ed long |
|00000b10| 2a 29 26 72 76 61 6c 75 | 65 32 2c 20 70 20 29 29 |*)&rvalu|e2, p ))|
|00000b20| 29 20 7b 0d 0a 09 09 09 | 09 09 2a 6c 76 61 6c 75 |) {.....|..*lvalu|
|00000b30| 65 20 3d 20 28 72 76 61 | 6c 75 65 31 20 3e 20 72 |e = (rva|lue1 > r|
|00000b40| 76 61 6c 75 65 32 3f 31 | 3a 30 29 3b 0d 0a 09 09 |value2?1|:0);....|
|00000b50| 09 09 09 72 65 74 75 72 | 6e 20 4e 4f 45 52 52 3b |...retur|n NOERR;|
|00000b60| 0d 0a 09 09 09 09 09 7d | 0d 0a 09 09 09 09 65 6c |.......}|......el|
|00000b70| 73 65 0d 0a 09 09 09 09 | 09 72 65 74 75 72 6e 20 |se......|.return |
|00000b80| 65 72 72 6f 72 3b 0d 0a | 0d 0a 0d 0a 09 09 63 61 |error;..|......ca|
|00000b90| 73 65 20 54 4f 4b 45 4e | 5f 4c 45 53 53 54 48 41 |se TOKEN|_LESSTHA|
|00000ba0| 4e 3a 0d 0a 09 09 09 69 | 66 20 28 20 21 28 65 72 |N:.....i|f ( !(er|
|00000bb0| 72 6f 72 20 3d 20 45 76 | 61 6c 45 78 70 72 65 73 |ror = Ev|alExpres|
|00000bc0| 73 69 6f 6e 20 28 20 28 | 75 6e 73 69 67 6e 65 64 |sion ( (|unsigned|
|00000bd0| 20 6c 6f 6e 67 20 2a 29 | 26 72 76 61 6c 75 65 32 | long *)|&rvalue2|
|00000be0| 2c 20 70 20 29 29 29 20 | 7b 0d 0a 09 09 09 09 09 |, p ))) |{.......|
|00000bf0| 2a 6c 76 61 6c 75 65 20 | 3d 20 28 72 76 61 6c 75 |*lvalue |= (rvalu|
|00000c00| 65 31 20 3c 20 72 76 61 | 6c 75 65 32 3f 31 3a 30 |e1 < rva|lue2?1:0|
|00000c10| 29 3b 0d 0a 09 09 09 09 | 09 72 65 74 75 72 6e 20 |);......|.return |
|00000c20| 4e 4f 45 52 52 3b 0d 0a | 09 09 09 09 09 7d 0d 0a |NOERR;..|.....}..|
|00000c30| 09 09 09 09 65 6c 73 65 | 0d 0a 09 09 09 09 09 72 |....else|.......r|
|00000c40| 65 74 75 72 6e 20 65 72 | 72 6f 72 3b 0d 0a 0d 0a |eturn er|ror;....|
|00000c50| 09 09 63 61 73 65 20 54 | 4f 4b 45 4e 5f 4c 45 53 |..case T|OKEN_LES|
|00000c60| 53 54 48 41 4e 4f 52 45 | 51 55 41 4c 3a 0d 0a 09 |STHANORE|QUAL:...|
|00000c70| 09 09 69 66 20 28 20 21 | 28 65 72 72 6f 72 20 3d |..if ( !|(error =|
|00000c80| 20 45 76 61 6c 45 78 70 | 72 65 73 73 69 6f 6e 20 | EvalExp|ression |
|00000c90| 28 20 28 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |( (unsig|ned long|
|00000ca0| 20 2a 29 26 72 76 61 6c | 75 65 32 2c 20 70 20 29 | *)&rval|ue2, p )|
|00000cb0| 29 29 20 7b 0d 0a 09 09 | 09 09 09 2a 6c 76 61 6c |)) {....|...*lval|
|00000cc0| 75 65 20 3d 20 28 72 76 | 61 6c 75 65 31 20 3c 3d |ue = (rv|alue1 <=|
|00000cd0| 20 72 76 61 6c 75 65 32 | 3f 31 3a 30 29 3b 0d 0a | rvalue2|?1:0);..|
|00000ce0| 09 09 09 09 09 72 65 74 | 75 72 6e 20 4e 4f 45 52 |.....ret|urn NOER|
|00000cf0| 52 3b 0d 0a 09 09 09 09 | 09 7d 0d 0a 09 09 09 09 |R;......|.}......|
|00000d00| 65 6c 73 65 0d 0a 09 09 | 09 09 09 72 65 74 75 72 |else....|...retur|
|00000d10| 6e 20 65 72 72 6f 72 3b | 0d 0a 0d 0a 09 09 63 61 |n error;|......ca|
|00000d20| 73 65 20 54 4f 4b 45 4e | 5f 47 52 45 41 54 45 52 |se TOKEN|_GREATER|
|00000d30| 54 48 41 4e 4f 52 45 51 | 55 41 4c 3a 0d 0a 09 09 |THANOREQ|UAL:....|
|00000d40| 09 69 66 20 28 20 21 28 | 65 72 72 6f 72 20 3d 20 |.if ( !(|error = |
|00000d50| 45 76 61 6c 45 78 70 72 | 65 73 73 69 6f 6e 20 28 |EvalExpr|ession (|
|00000d60| 20 28 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 | (unsign|ed long |
|00000d70| 2a 29 26 72 76 61 6c 75 | 65 32 2c 20 70 20 29 29 |*)&rvalu|e2, p ))|
|00000d80| 29 20 7b 0d 0a 09 09 09 | 09 09 2a 6c 76 61 6c 75 |) {.....|..*lvalu|
|00000d90| 65 20 3d 20 28 72 76 61 | 6c 75 65 31 20 3e 3d 20 |e = (rva|lue1 >= |
|00000da0| 72 76 61 6c 75 65 32 3f | 31 3a 30 29 3b 0d 0a 09 |rvalue2?|1:0);...|
|00000db0| 09 09 09 09 72 65 74 75 | 72 6e 20 4e 4f 45 52 52 |....retu|rn NOERR|
|00000dc0| 3b 0d 0a 09 09 09 09 09 | 7d 0d 0a 09 09 09 09 65 |;.......|}......e|
|00000dd0| 6c 73 65 0d 0a 09 09 09 | 09 09 72 65 74 75 72 6e |lse.....|..return|
|00000de0| 20 65 72 72 6f 72 3b 0d | 0a 0d 0a 0d 0a 09 09 63 | error;.|.......c|
|00000df0| 61 73 65 20 54 4f 4b 45 | 4e 5f 50 4c 55 53 3a 0d |ase TOKE|N_PLUS:.|
|00000e00| 0a 09 09 09 69 66 20 28 | 20 21 28 65 72 72 6f 72 |....if (| !(error|
|00000e10| 20 3d 20 45 76 61 6c 45 | 78 70 72 65 73 73 69 6f | = EvalE|xpressio|
|00000e20| 6e 20 28 20 28 75 6e 73 | 69 67 6e 65 64 20 6c 6f |n ( (uns|igned lo|
|00000e30| 6e 67 20 2a 29 26 72 76 | 61 6c 75 65 32 2c 20 70 |ng *)&rv|alue2, p|
|00000e40| 20 29 29 29 20 7b 0d 0a | 09 09 09 09 09 2a 6c 76 | ))) {..|.....*lv|
|00000e50| 61 6c 75 65 20 3d 20 72 | 76 61 6c 75 65 31 2b 72 |alue = r|value1+r|
|00000e60| 76 61 6c 75 65 32 3b 0d | 0a 09 09 09 09 09 72 65 |value2;.|......re|
|00000e70| 74 75 72 6e 20 4e 4f 45 | 52 52 3b 0d 0a 09 09 09 |turn NOE|RR;.....|
|00000e80| 09 09 7d 0d 0a 09 09 09 | 09 65 6c 73 65 0d 0a 09 |..}.....|.else...|
|00000e90| 09 09 09 09 72 65 74 75 | 72 6e 20 65 72 72 6f 72 |....retu|rn error|
|00000ea0| 3b 0d 0a 0d 0a 09 09 63 | 61 73 65 20 54 4f 4b 45 |;......c|ase TOKE|
|00000eb0| 4e 5f 4d 49 4e 55 53 3a | 0d 0a 09 09 09 69 66 20 |N_MINUS:|.....if |
|00000ec0| 28 20 21 28 65 72 72 6f | 72 20 3d 20 45 76 61 6c |( !(erro|r = Eval|
|00000ed0| 45 78 70 72 65 73 73 69 | 6f 6e 20 28 20 28 75 6e |Expressi|on ( (un|
|00000ee0| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 2a 29 26 72 |signed l|ong *)&r|
|00000ef0| 76 61 6c 75 65 32 2c 20 | 70 20 29 29 29 20 7b 0d |value2, |p ))) {.|
|00000f00| 0a 09 09 09 09 09 2a 6c | 76 61 6c 75 65 20 3d 20 |......*l|value = |
|00000f10| 72 76 61 6c 75 65 31 2d | 72 76 61 6c 75 65 32 3b |rvalue1-|rvalue2;|
|00000f20| 0d 0a 09 09 09 09 09 72 | 65 74 75 72 6e 20 4e 4f |.......r|eturn NO|
|00000f30| 45 52 52 3b 0d 0a 09 09 | 09 09 09 7d 0d 0a 09 09 |ERR;....|...}....|
|00000f40| 09 09 65 6c 73 65 0d 0a | 09 09 09 09 09 72 65 74 |..else..|.....ret|
|00000f50| 75 72 6e 20 65 72 72 6f | 72 3b 0d 0a 09 09 63 61 |urn erro|r;....ca|
|00000f60| 73 65 20 54 4f 4b 45 4e | 5f 4f 52 3a 0d 0a 09 09 |se TOKEN|_OR:....|
|00000f70| 09 69 66 20 28 20 21 28 | 65 72 72 6f 72 20 3d 20 |.if ( !(|error = |
|00000f80| 45 76 61 6c 45 78 70 72 | 65 73 73 69 6f 6e 20 28 |EvalExpr|ession (|
|00000f90| 20 28 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 | (unsign|ed long |
|00000fa0| 2a 29 26 72 76 61 6c 75 | 65 32 2c 20 70 20 29 29 |*)&rvalu|e2, p ))|
|00000fb0| 29 20 7b 0d 0a 09 09 09 | 09 09 2a 6c 76 61 6c 75 |) {.....|..*lvalu|
|00000fc0| 65 20 3d 20 72 76 61 6c | 75 65 31 7c 72 76 61 6c |e = rval|ue1|rval|
|00000fd0| 75 65 32 3b 0d 0a 09 09 | 09 09 09 72 65 74 75 72 |ue2;....|...retur|
|00000fe0| 6e 20 4e 4f 45 52 52 3b | 0d 0a 09 09 09 09 09 7d |n NOERR;|.......}|
|00000ff0| 0d 0a 09 09 09 09 65 6c | 73 65 0d 0a 09 09 09 09 |......el|se......|
|00001000| 09 72 65 74 75 72 6e 20 | 65 72 72 6f 72 3b 0d 0a |.return |error;..|
|00001010| 09 09 63 61 73 65 20 54 | 4f 4b 45 4e 5f 43 41 52 |..case T|OKEN_CAR|
|00001020| 45 54 3a 0d 0a 09 09 09 | 69 66 20 28 20 21 28 65 |ET:.....|if ( !(e|
|00001030| 72 72 6f 72 20 3d 20 45 | 76 61 6c 45 78 70 72 65 |rror = E|valExpre|
|00001040| 73 73 69 6f 6e 20 28 20 | 28 75 6e 73 69 67 6e 65 |ssion ( |(unsigne|
|00001050| 64 20 6c 6f 6e 67 20 2a | 29 26 72 76 61 6c 75 65 |d long *|)&rvalue|
|00001060| 32 2c 20 70 20 29 29 29 | 20 7b 0d 0a 09 09 09 09 |2, p )))| {......|
|00001070| 09 2a 6c 76 61 6c 75 65 | 20 3d 20 72 76 61 6c 75 |.*lvalue| = rvalu|
|00001080| 65 31 5e 72 76 61 6c 75 | 65 32 3b 0d 0a 09 09 09 |e1^rvalu|e2;.....|
|00001090| 09 09 72 65 74 75 72 6e | 20 4e 4f 45 52 52 3b 0d |..return| NOERR;.|
|000010a0| 0a 09 09 09 09 09 7d 0d | 0a 09 09 09 09 65 6c 73 |......}.|.....els|
|000010b0| 65 0d 0a 09 09 09 09 09 | 72 65 74 75 72 6e 20 65 |e.......|return e|
|000010c0| 72 72 6f 72 3b 0d 0a 0d | 0a 09 09 64 65 66 61 75 |rror;...|...defau|
|000010d0| 6c 74 3a 0d 0a 09 09 09 | 72 65 74 75 72 6e 20 45 |lt:.....|return E|
|000010e0| 52 52 4f 52 5f 53 59 4e | 54 41 58 3b 0d 0a 09 09 |RROR_SYN|TAX;....|
|000010f0| 7d 0d 0a 7d 0d 0a 0d 0a | 2f 2f 3d 3d 3d 3d 3d 3d |}..}....|//======|
|00001100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001120| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001140| 3d 3d 3d 3d 3d 3d 3d 0d | 0a 2f 2f 09 45 76 61 6c |=======.|.//.Eval|
|00001150| 46 61 63 74 6f 72 0d 0a | 2f 2f 0d 0a 2f 2f 09 47 |Factor..|//..//.G|
|00001160| 69 76 65 6e 20 61 20 74 | 6f 6b 65 6e 20 70 6f 69 |iven a t|oken poi|
|00001170| 6e 74 65 72 2c 20 65 76 | 61 6c 75 61 74 65 20 74 |nter, ev|aluate t|
|00001180| 68 65 20 74 6f 6b 65 6e | 69 7a 65 64 20 22 6f 70 |he token|ized "op|
|00001190| 65 72 61 74 69 6f 6e 22 | 0d 0a 2f 2f 3d 3d 3d 3d |eration"|..//====|
|000011a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000011b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000011c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000011d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000011e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 0a 0d 0a 4f 53 45 |========|=....OSE|
|000011f0| 72 72 20 45 76 61 6c 46 | 61 63 74 6f 72 20 28 20 |rr EvalF|actor ( |
|00001200| 55 4c 4f 4e 47 20 2a 20 | 6c 76 61 6c 75 65 2c 20 |ULONG * |lvalue, |
|00001210| 74 6f 6b 65 6e 20 2a 20 | 2a 20 70 20 29 0d 0a 7b |token * |* p )..{|
|00001220| 0d 0a 09 4f 53 45 72 72 | 20 65 72 72 6f 72 3b 0d |...OSErr| error;.|
|00001230| 0a 09 6c 6f 6e 67 20 72 | 76 61 6c 75 65 31 2c 72 |..long r|value1,r|
|00001240| 76 61 6c 75 65 32 3b 0d | 0a 0d 0a 09 69 66 28 20 |value2;.|....if( |
|00001250| 28 65 72 72 6f 72 20 3d | 20 45 76 61 6c 4e 75 6d |(error =| EvalNum|
|00001260| 62 65 72 20 28 20 28 75 | 6e 73 69 67 6e 65 64 20 |ber ( (u|nsigned |
|00001270| 6c 6f 6e 67 20 2a 29 26 | 72 76 61 6c 75 65 31 2c |long *)&|rvalue1,|
|00001280| 20 70 20 29 29 20 21 3d | 20 6e 6f 45 72 72 20 29 | p )) !=| noErr )|
|00001290| 0d 0a 09 09 72 65 74 75 | 72 6e 20 65 72 72 6f 72 |....retu|rn error|
|000012a0| 3b 0d 0a 0d 0a 09 73 77 | 69 74 63 68 20 28 70 62 |;.....sw|itch (pb|
|000012b0| 75 6d 70 29 20 7b 0d 0a | 09 09 63 61 73 65 20 54 |ump) {..|..case T|
|000012c0| 4f 4b 45 4e 5f 4d 55 4c | 54 3a 0d 0a 09 09 09 69 |OKEN_MUL|T:.....i|
|000012d0| 66 20 28 20 21 28 65 72 | 72 6f 72 20 3d 20 45 76 |f ( !(er|ror = Ev|
|000012e0| 61 6c 46 61 63 74 6f 72 | 20 28 20 28 75 6e 73 69 |alFactor| ( (unsi|
|000012f0| 67 6e 65 64 20 6c 6f 6e | 67 20 2a 29 26 72 76 61 |gned lon|g *)&rva|
|00001300| 6c 75 65 32 2c 20 70 20 | 29 29 29 20 7b 0d 0a 09 |lue2, p |))) {...|
|00001310| 09 09 09 09 2a 6c 76 61 | 6c 75 65 20 3d 20 72 76 |....*lva|lue = rv|
|00001320| 61 6c 75 65 31 2a 72 76 | 61 6c 75 65 32 3b 0d 0a |alue1*rv|alue2;..|
|00001330| 09 09 09 09 09 72 65 74 | 75 72 6e 20 4e 4f 45 52 |.....ret|urn NOER|
|00001340| 52 3b 0d 0a 09 09 09 09 | 09 7d 0d 0a 09 09 09 09 |R;......|.}......|
|00001350| 65 6c 73 65 0d 0a 09 09 | 09 09 09 72 65 74 75 72 |else....|...retur|
|00001360| 6e 20 65 72 72 6f 72 3b | 0d 0a 0d 0a 09 09 63 61 |n error;|......ca|
|00001370| 73 65 20 54 4f 4b 45 4e | 5f 44 49 56 3a 0d 0a 09 |se TOKEN|_DIV:...|
|00001380| 09 09 69 66 20 28 20 21 | 28 65 72 72 6f 72 20 3d |..if ( !|(error =|
|00001390| 20 45 76 61 6c 46 61 63 | 74 6f 72 20 28 20 28 75 | EvalFac|tor ( (u|
|000013a0| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 2a 29 26 |nsigned |long *)&|
|000013b0| 72 76 61 6c 75 65 32 2c | 20 70 20 29 29 29 20 7b |rvalue2,| p ))) {|
|000013c0| 0d 0a 09 09 09 09 09 69 | 66 20 28 20 72 76 61 6c |.......i|f ( rval|
|000013d0| 75 65 32 20 29 0d 0a 09 | 09 09 09 09 09 09 2a 6c |ue2 )...|......*l|
|000013e0| 76 61 6c 75 65 20 3d 20 | 72 76 61 6c 75 65 31 2f |value = |rvalue1/|
|000013f0| 72 76 61 6c 75 65 32 3b | 0d 0a 09 09 09 09 09 09 |rvalue2;|........|
|00001400| 65 6c 73 65 0d 0a 09 09 | 09 09 09 09 09 72 65 74 |else....|.....ret|
|00001410| 75 72 6e 20 45 52 52 4f | 52 5f 44 49 56 5a 45 52 |urn ERRO|R_DIVZER|
|00001420| 4f 3b 0d 0a 09 09 09 09 | 09 72 65 74 75 72 6e 20 |O;......|.return |
|00001430| 4e 4f 45 52 52 3b 0d 0a | 09 09 09 09 09 7d 0d 0a |NOERR;..|.....}..|
|00001440| 09 09 09 09 65 6c 73 65 | 0d 0a 09 09 09 09 09 72 |....else|.......r|
|00001450| 65 74 75 72 6e 20 65 72 | 72 6f 72 3b 0d 0a 09 09 |eturn er|ror;....|
|00001460| 63 61 73 65 20 54 4f 4b | 45 4e 5f 41 4e 44 3a 0d |case TOK|EN_AND:.|
|00001470| 0a 09 09 09 69 66 20 28 | 20 21 28 65 72 72 6f 72 |....if (| !(error|
|00001480| 20 3d 20 45 76 61 6c 46 | 61 63 74 6f 72 20 28 20 | = EvalF|actor ( |
|00001490| 28 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 2a |(unsigne|d long *|
|000014a0| 29 26 72 76 61 6c 75 65 | 32 2c 20 70 20 29 29 29 |)&rvalue|2, p )))|
|000014b0| 20 7b 0d 0a 09 09 09 09 | 09 2a 6c 76 61 6c 75 65 | {......|.*lvalue|
|000014c0| 20 3d 20 72 76 61 6c 75 | 65 31 26 72 76 61 6c 75 | = rvalu|e1&rvalu|
|000014d0| 65 32 3b 0d 0a 09 09 09 | 09 09 72 65 74 75 72 6e |e2;.....|..return|
|000014e0| 20 4e 4f 45 52 52 3b 0d | 0a 09 09 09 09 09 7d 0d | NOERR;.|......}.|
|000014f0| 0a 09 09 09 09 65 6c 73 | 65 0d 0a 09 09 09 09 09 |.....els|e.......|
|00001500| 72 65 74 75 72 6e 20 65 | 72 72 6f 72 3b 0d 0a 0d |return e|rror;...|
|00001510| 0a 09 09 63 61 73 65 20 | 54 4f 4b 45 4e 5f 4d 4f |...case |TOKEN_MO|
|00001520| 44 3a 0d 0a 09 09 09 69 | 66 20 28 20 21 28 65 72 |D:.....i|f ( !(er|
|00001530| 72 6f 72 20 3d 20 45 76 | 61 6c 46 61 63 74 6f 72 |ror = Ev|alFactor|
|00001540| 20 28 20 28 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e | ( (unsi|gned lon|
|00001550| 67 20 2a 29 26 72 76 61 | 6c 75 65 32 2c 20 70 20 |g *)&rva|lue2, p |
|00001560| 29 29 29 20 7b 0d 0a 09 | 09 09 09 09 69 66 28 20 |))) {...|....if( |
|00001570| 72 76 61 6c 75 65 32 29 | 0d 0a 09 09 09 09 09 09 |rvalue2)|........|
|00001580| 09 2a 6c 76 61 6c 75 65 | 20 3d 20 72 76 61 6c 75 |.*lvalue| = rvalu|
|00001590| 65 31 25 72 76 61 6c 75 | 65 32 3b 0d 0a 09 09 09 |e1%rvalu|e2;.....|
|000015a0| 09 09 09 65 6c 73 65 0d | 0a 09 09 09 09 09 09 09 |...else.|........|
|000015b0| 72 65 74 75 72 6e 20 45 | 52 52 4f 52 5f 44 49 56 |return E|RROR_DIV|
|000015c0| 5a 45 52 4f 3b 0d 0a 09 | 09 09 09 09 72 65 74 75 |ZERO;...|....retu|
|000015d0| 72 6e 20 4e 4f 45 52 52 | 3b 0d 0a 09 09 09 09 09 |rn NOERR|;.......|
|000015e0| 7d 0d 0a 09 09 09 09 65 | 6c 73 65 0d 0a 09 09 09 |}......e|lse.....|
|000015f0| 09 09 72 65 74 75 72 6e | 20 65 72 72 6f 72 3b 0d |..return| error;.|
|00001600| 0a 0d 0a 09 09 63 61 73 | 65 20 54 4f 4b 45 4e 5f |.....cas|e TOKEN_|
|00001610| 4c 53 48 49 46 54 3a 0d | 0a 09 09 09 69 66 20 28 |LSHIFT:.|....if (|
|00001620| 20 21 28 65 72 72 6f 72 | 20 3d 20 45 76 61 6c 46 | !(error| = EvalF|
|00001630| 61 63 74 6f 72 20 28 20 | 28 75 6e 73 69 67 6e 65 |actor ( |(unsigne|
|00001640| 64 20 6c 6f 6e 67 20 2a | 29 26 72 76 61 6c 75 65 |d long *|)&rvalue|
|00001650| 32 2c 20 70 20 29 29 29 | 20 7b 0d 0a 09 09 09 09 |2, p )))| {......|
|00001660| 09 2a 6c 76 61 6c 75 65 | 20 3d 20 72 76 61 6c 75 |.*lvalue| = rvalu|
|00001670| 65 31 3c 3c 72 76 61 6c | 75 65 32 3b 0d 0a 09 09 |e1<<rval|ue2;....|
|00001680| 09 09 09 72 65 74 75 72 | 6e 20 4e 4f 45 52 52 3b |...retur|n NOERR;|
|00001690| 0d 0a 09 09 09 09 09 7d | 0d 0a 09 09 09 09 65 6c |.......}|......el|
|000016a0| 73 65 0d 0a 09 09 09 09 | 09 72 65 74 75 72 6e 20 |se......|.return |
|000016b0| 65 72 72 6f 72 3b 0d 0a | 0d 0a 09 09 63 61 73 65 |error;..|....case|
|000016c0| 20 54 4f 4b 45 4e 5f 52 | 53 48 49 46 54 3a 0d 0a | TOKEN_R|SHIFT:..|
|000016d0| 09 09 09 69 66 20 28 20 | 21 28 65 72 72 6f 72 20 |...if ( |!(error |
|000016e0| 3d 20 45 76 61 6c 46 61 | 63 74 6f 72 20 28 20 28 |= EvalFa|ctor ( (|
|000016f0| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 20 2a 29 |unsigned| long *)|
|00001700| 26 72 76 61 6c 75 65 32 | 2c 20 70 20 29 29 29 20 |&rvalue2|, p ))) |
|00001710| 7b 0d 0a 09 09 09 09 09 | 2a 6c 76 61 6c 75 65 20 |{.......|*lvalue |
|00001720| 3d 20 72 76 61 6c 75 65 | 31 3e 3e 72 76 61 6c 75 |= rvalue|1>>rvalu|
|00001730| 65 32 3b 0d 0a 09 09 09 | 09 09 72 65 74 75 72 6e |e2;.....|..return|
|00001740| 20 4e 4f 45 52 52 3b 0d | 0a 09 09 09 09 09 7d 0d | NOERR;.|......}.|
|00001750| 0a 09 09 09 09 65 6c 73 | 65 0d 0a 09 09 09 09 09 |.....els|e.......|
|00001760| 72 65 74 75 72 6e 20 65 | 72 72 6f 72 3b 0d 0a 0d |return e|rror;...|
|00001770| 0a 09 09 64 65 66 61 75 | 6c 74 3a 0d 0a 09 09 09 |...defau|lt:.....|
|00001780| 2a 6c 76 61 6c 75 65 20 | 3d 20 72 76 61 6c 75 65 |*lvalue |= rvalue|
|00001790| 31 3b 0d 0a 09 09 09 28 | 2a 70 29 2d 2d 3b 0d 0a |1;.....(|*p)--;..|
|000017a0| 09 09 09 72 65 74 75 72 | 6e 20 4e 4f 45 52 52 3b |...retur|n NOERR;|
|000017b0| 0d 0a 09 09 7d 0d 0a 7d | 0d 0a 0d 0a 2f 2f 3d 3d |....}..}|....//==|
|000017c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000017f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001800| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0a 2f 2f 09 |========|===..//.|
|00001810| 45 76 61 6c 4e 75 6d 62 | 65 72 0d 0a 2f 2f 0d 0a |EvalNumb|er..//..|
|00001820| 2f 2f 09 47 69 76 65 6e | 20 61 20 74 6f 6b 65 6e |//.Given| a token|
|00001830| 20 70 6f 69 6e 74 65 72 | 2c 20 72 65 74 75 72 6e | pointer|, return|
|00001840| 20 74 68 65 20 76 61 6c | 75 65 20 66 6f 75 6e 64 | the val|ue found|
|00001850| 20 61 74 20 74 68 61 74 | 20 70 6f 69 6e 74 20 28 | at that| point (|
|00001860| 63 6f 6e 73 74 20 6f 72 | 20 76 61 72 29 0d 0a 2f |const or| var)../|
|00001870| 2f 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |/=======|========|
|00001880| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001890| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000018a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000018b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0a |========|======..|
|000018c0| 0d 0a 4f 53 45 72 72 20 | 45 76 61 6c 4e 75 6d 62 |..OSErr |EvalNumb|
|000018d0| 65 72 20 28 20 55 4c 4f | 4e 47 20 2a 20 6c 76 61 |er ( ULO|NG * lva|
|000018e0| 6c 75 65 2c 20 74 6f 6b | 65 6e 20 2a 20 2a 20 70 |lue, tok|en * * p|
|000018f0| 20 29 0d 0a 7b 0d 0a 09 | 4f 53 45 72 72 20 65 72 | )..{...|OSErr er|
|00001900| 72 6f 72 3b 0d 0a 09 6c | 6f 6e 67 20 74 77 69 64 |ror;...l|ong twid|
|00001910| 64 6c 65 2c 73 68 69 66 | 74 3b 0d 0a 0d 0a 09 6c |dle,shif|t;.....l|
|00001920| 6f 6e 67 20 73 69 67 6e | 20 3d 20 31 3b 0d 0a 0d |ong sign| = 1;...|
|00001930| 0a 09 77 68 69 6c 65 20 | 28 20 28 2a 2a 70 20 3d |..while |( (**p =|
|00001940| 3d 20 54 4f 4b 45 4e 5f | 4d 49 4e 55 53 20 29 20 |= TOKEN_|MINUS ) |
|00001950| 7c 7c 20 28 2a 2a 70 20 | 3d 3d 20 54 4f 4b 45 4e ||| (**p |== TOKEN|
|00001960| 5f 50 4c 55 53 29 20 29 | 0d 0a 09 09 7b 0d 0a 09 |_PLUS) )|....{...|
|00001970| 09 73 77 69 74 63 68 20 | 28 20 2a 2a 70 20 29 0d |.switch |( **p ).|
|00001980| 0a 09 09 09 7b 0d 0a 09 | 09 09 63 61 73 65 20 54 |....{...|..case T|
|00001990| 4f 4b 45 4e 5f 4d 49 4e | 55 53 3a 0d 0a 09 09 09 |OKEN_MIN|US:.....|
|000019a0| 09 73 69 67 6e 20 3d 20 | 2d 73 69 67 6e 3b 0d 0a |.sign = |-sign;..|
|000019b0| 09 09 09 09 62 72 65 61 | 6b 3b 0d 0a 09 09 09 63 |....brea|k;.....c|
|000019c0| 61 73 65 20 54 4f 4b 45 | 4e 5f 50 4c 55 53 3a 0d |ase TOKE|N_PLUS:.|
|000019d0| 0a 09 09 09 09 62 72 65 | 61 6b 3b 0d 0a 09 09 09 |.....bre|ak;.....|
|000019e0| 7d 0d 0a 09 09 28 2a 70 | 29 2b 2b 3b 0d 0a 09 09 |}....(*p|)++;....|
|000019f0| 7d 0d 0a 0d 0a 09 73 68 | 69 66 74 20 3d 20 30 3b |}.....sh|ift = 0;|
|00001a00| 0d 0a 0d 0a 09 69 66 20 | 28 20 2a 2a 70 20 3d 3d |.....if |( **p ==|
|00001a10| 20 54 4f 4b 45 4e 5f 43 | 41 52 45 54 20 29 20 7b | TOKEN_C|ARET ) {|
|00001a20| 0d 0a 09 09 09 73 68 69 | 66 74 20 3d 20 31 36 3b |.....shi|ft = 16;|
|00001a30| 0d 0a 09 09 09 28 2a 70 | 29 2b 2b 3b 0d 0a 09 09 |.....(*p|)++;....|
|00001a40| 7d 0d 0a 0d 0a 09 69 66 | 20 28 20 2a 2a 70 20 3d |}.....if| ( **p =|
|00001a50| 3d 20 54 4f 4b 45 4e 5f | 4c 45 53 53 54 48 41 4e |= TOKEN_|LESSTHAN|
|00001a60| 20 29 20 7b 0d 0a 09 09 | 09 73 68 69 66 74 20 3d | ) {....|.shift =|
|00001a70| 20 30 3b 0d 0a 09 09 09 | 28 2a 70 29 2b 2b 3b 0d | 0;.....|(*p)++;.|
|00001a80| 0a 09 09 7d 0d 0a 0d 0a | 09 69 66 20 28 20 2a 2a |...}....|.if ( **|
|00001a90| 70 20 3d 3d 20 54 4f 4b | 45 4e 5f 47 52 45 41 54 |p == TOK|EN_GREAT|
|00001aa0| 45 52 54 48 41 4e 20 29 | 20 7b 0d 0a 09 09 09 73 |ERTHAN )| {.....s|
|00001ab0| 68 69 66 74 20 3d 20 38 | 3b 0d 0a 09 09 09 28 2a |hift = 8|;.....(*|
|00001ac0| 70 29 2b 2b 3b 0d 0a 09 | 09 7d 0d 0a 0d 0a 09 69 |p)++;...|.}.....i|
|00001ad0| 66 20 28 20 2a 2a 70 20 | 3d 3d 20 54 4f 4b 45 4e |f ( **p |== TOKEN|
|00001ae0| 5f 4e 4f 54 20 29 20 7b | 0d 0a 09 09 09 74 77 69 |_NOT ) {|.....twi|
|00001af0| 64 64 6c 65 20 3d 20 30 | 78 66 66 66 66 66 66 66 |ddle = 0|xfffffff|
|00001b00| 66 3b 0d 0a 09 09 09 28 | 2a 70 29 2b 2b 3b 0d 0a |f;.....(|*p)++;..|
|00001b10| 09 09 7d 0d 0a 09 09 65 | 6c 73 65 0d 0a 09 09 09 |..}....e|lse.....|
|00001b20| 74 77 69 64 64 6c 65 20 | 3d 20 30 3b 0d 0a 0d 0a |twiddle |= 0;....|
|00001b30| 09 73 77 69 74 63 68 20 | 28 70 62 75 6d 70 29 20 |.switch |(pbump) |
|00001b40| 7b 0d 0a 09 09 63 61 73 | 65 20 54 4f 4b 45 4e 5f |{....cas|e TOKEN_|
|00001b50| 43 4f 4e 53 54 3a 0d 0a | 09 09 09 69 66 20 28 20 |CONST:..|...if ( |
|00001b60| 21 28 65 72 72 6f 72 20 | 3d 20 20 45 76 61 6c 43 |!(error |= EvalC|
|00001b70| 6f 6e 73 74 28 6c 76 61 | 6c 75 65 2c 20 70 20 29 |onst(lva|lue, p )|
|00001b80| 20 29 20 29 0d 0a 09 09 | 09 09 09 7b 20 2a 6c 76 | ) )....|...{ *lv|
|00001b90| 61 6c 75 65 20 2a 3d 20 | 73 69 67 6e 3b 20 2a 6c |alue *= |sign; *l|
|00001ba0| 76 61 6c 75 65 20 5e 3d | 20 74 77 69 64 64 6c 65 |value ^=| twiddle|
|00001bb0| 20 3b 20 2a 6c 76 61 6c | 75 65 20 3e 3e 3d 20 73 | ; *lval|ue >>= s|
|00001bc0| 68 69 66 74 3b 20 7d 0d | 0a 09 09 09 72 65 74 75 |hift; }.|....retu|
|00001bd0| 72 6e 20 65 72 72 6f 72 | 3b 0d 0a 0d 0a 09 09 63 |rn error|;......c|
|00001be0| 61 73 65 20 54 4f 4b 45 | 4e 5f 56 41 52 3a 0d 0a |ase TOKE|N_VAR:..|
|00001bf0| 09 09 09 69 66 20 28 20 | 21 20 28 65 72 72 6f 72 |...if ( |! (error|
|00001c00| 20 3d 20 45 76 61 6c 56 | 61 72 28 6c 76 61 6c 75 | = EvalV|ar(lvalu|
|00001c10| 65 2c 20 70 20 29 29 29 | 0d 0a 09 09 09 09 09 7b |e, p )))|.......{|
|00001c20| 20 2a 6c 76 61 6c 75 65 | 20 2a 3d 20 73 69 67 6e | *lvalue| *= sign|
|00001c30| 3b 20 2a 6c 76 61 6c 75 | 65 20 5e 3d 20 74 77 69 |; *lvalu|e ^= twi|
|00001c40| 64 64 6c 65 3b 20 2a 6c | 76 61 6c 75 65 20 3e 3e |ddle; *l|value >>|
|00001c50| 3d 20 73 68 69 66 74 3b | 20 7d 0d 0a 09 09 09 72 |= shift;| }.....r|
|00001c60| 65 74 75 72 6e 20 65 72 | 72 6f 72 3b 0d 0a 0d 0a |eturn er|ror;....|
|00001c70| 09 09 63 61 73 65 20 54 | 4f 4b 45 4e 5f 4c 50 41 |..case T|OKEN_LPA|
|00001c80| 52 45 4e 3a 0d 0a 09 09 | 20 20 20 69 66 20 28 20 |REN:....| if ( |
|00001c90| 21 20 28 65 72 72 6f 72 | 20 3d 20 45 76 61 6c 45 |! (error| = EvalE|
|00001ca0| 78 70 72 65 73 73 69 6f | 6e 28 6c 76 61 6c 75 65 |xpressio|n(lvalue|
|00001cb0| 2c 20 70 29 20 29 20 29 | 20 7b 0d 0a 09 09 09 09 |, p) ) )| {......|
|00001cc0| 09 2a 6c 76 61 6c 75 65 | 20 2a 3d 20 73 69 67 6e |.*lvalue| *= sign|
|00001cd0| 3b 20 2a 6c 76 61 6c 75 | 65 20 5e 3d 20 74 77 69 |; *lvalu|e ^= twi|
|00001ce0| 64 64 6c 65 3b 20 2a 6c | 76 61 6c 75 65 20 3e 3e |ddle; *l|value >>|
|00001cf0| 3d 73 68 69 66 74 3b 20 | 7d 0d 0a 09 09 20 20 20 |=shift; |}.... |
|00001d00| 72 65 74 75 72 6e 20 65 | 72 72 6f 72 3b 0d 0a 0d |return e|rror;...|
|00001d10| 0a 0d 0a 09 09 64 65 66 | 61 75 6c 74 3a 0d 0a 09 |.....def|ault:...|
|00001d20| 09 09 72 65 74 75 72 6e | 20 45 52 52 4f 52 5f 53 |..return| ERROR_S|
|00001d30| 59 4e 54 41 58 3b 0d 0a | 09 09 7d 0d 0a 7d 0d 0a |YNTAX;..|..}..}..|
|00001d40| 0d 0a 2f 2f 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |..//====|========|
|00001d50| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001d60| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001d70| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001d80| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001d90| 3d 0d 0a 2f 2f 09 45 76 | 61 6c 43 6f 6e 74 73 0d |=..//.Ev|alConts.|
|00001da0| 0a 2f 2f 0d 0a 2f 2f 09 | 54 6f 6b 65 6e 69 7a 65 |.//..//.|Tokenize|
|00001db0| 64 20 65 78 70 72 65 73 | 73 69 6f 6e 20 73 68 6f |d expres|sion sho|
|00001dc0| 75 6c 64 20 65 76 61 6c | 75 61 74 65 20 74 6f 20 |uld eval|uate to |
|00001dd0| 61 20 63 6f 6e 73 74 61 | 6e 74 0d 0a 2f 2f 3d 3d |a consta|nt..//==|
|00001de0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001df0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001e00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001e10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001e20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0a 0d 0a 4f |========|===....O|
|00001e30| 53 45 72 72 20 45 76 61 | 6c 43 6f 6e 73 74 28 20 |SErr Eva|lConst( |
|00001e40| 55 4c 4f 4e 47 20 2a 20 | 6c 76 61 6c 75 65 2c 20 |ULONG * |lvalue, |
|00001e50| 74 6f 6b 65 6e 20 2a 20 | 2a 20 70 20 29 0d 0a 7b |token * |* p )..{|
|00001e60| 0d 0a 09 69 6e 74 20 69 | 3b 0d 0a 09 75 6e 73 69 |...int i|;...unsi|
|00001e70| 67 6e 65 64 20 6c 6f 6e | 67 20 6a 2c 6b 3b 0d 0a |gned lon|g j,k;..|
|00001e80| 0d 0a 09 73 77 69 74 63 | 68 20 28 70 62 75 6d 70 |...switc|h (pbump|
|00001e90| 29 0d 0a 09 7b 0d 0a 09 | 09 63 61 73 65 20 43 4c |)...{...|.case CL|
|00001ea0| 41 53 53 5f 4e 55 4c 4c | 3a 0d 0a 09 09 09 2a 6c |ASS_NULL|:.....*l|
|00001eb0| 76 61 6c 75 65 20 3d 20 | 30 3b 0d 0a 09 09 09 72 |value = |0;.....r|
|00001ec0| 65 74 75 72 6e 20 4e 4f | 45 52 52 3b 0d 0a 09 09 |eturn NO|ERR;....|
|00001ed0| 63 61 73 65 20 43 4c 41 | 53 53 5f 42 59 54 45 3a |case CLA|SS_BYTE:|
|00001ee0| 0d 0a 09 09 09 2a 6c 76 | 61 6c 75 65 20 3d 20 70 |.....*lv|alue = p|
|00001ef0| 62 75 6d 70 3b 0d 0a 09 | 09 09 72 65 74 75 72 6e |bump;...|..return|
|00001f00| 20 4e 4f 45 52 52 3b 0d | 0a 09 09 63 61 73 65 20 | NOERR;.|...case |
|00001f10| 43 4c 41 53 53 5f 57 4f | 52 44 3a 0d 0a 09 09 09 |CLASS_WO|RD:.....|
|00001f20| 2a 6c 76 61 6c 75 65 20 | 3d 20 28 75 6e 73 69 67 |*lvalue |= (unsig|
|00001f30| 6e 65 64 20 6c 6f 6e 67 | 29 28 70 62 75 6d 70 29 |ned long|)(pbump)|
|00001f40| 3b 0d 0a 09 09 09 2a 6c | 76 61 6c 75 65 20 7c 3d |;.....*l|value |=|
|00001f50| 20 28 28 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 | ((unsig|ned long|
|00001f60| 29 28 70 62 75 6d 70 29 | 29 20 3c 3c 20 38 3b 0d |)(pbump)|) << 8;.|
|00001f70| 0a 09 09 09 72 65 74 75 | 72 6e 20 4e 4f 45 52 52 |....retu|rn NOERR|
|00001f80| 3b 0d 0a 09 09 63 61 73 | 65 20 43 4c 41 53 53 5f |;....cas|e CLASS_|
|00001f90| 4c 4f 4e 47 3a 0d 0a 09 | 09 63 61 73 65 20 43 4c |LONG:...|.case CL|
|00001fa0| 41 53 53 5f 50 54 52 3a | 0d 0a 09 09 09 6a 20 3d |ASS_PTR:|.....j =|
|00001fb0| 20 30 4c 3b 0d 0a 09 09 | 09 66 6f 72 20 28 20 69 | 0L;....|.for ( i|
|00001fc0| 20 3d 20 30 3b 20 69 20 | 3c 20 33 32 20 3b 20 69 | = 0; i |< 32 ; i|
|00001fd0| 20 2b 3d 20 38 20 29 0d | 0a 09 09 09 7b 0d 0a 09 | += 8 ).|....{...|
|00001fe0| 09 09 09 6b 20 3d 20 28 | 75 6e 73 69 67 6e 65 64 |...k = (|unsigned|
|00001ff0| 20 6c 6f 6e 67 29 20 28 | 28 75 6e 73 69 67 6e 65 | long) (|(unsigne|
|00002000| 64 20 6c 6f 6e 67 29 28 | 2a 28 2a 70 29 2b 2b 29 |d long)(|*(*p)++)|
|00002010| 20 3c 3c 20 69 29 3b 0d | 0a 09 09 09 09 6a 20 7c | << i);.|.....j ||
|00002020| 3d 20 6b 3b 0d 0a 09 09 | 09 7d 0d 0a 09 09 09 2a |= k;....|.}.....*|
|00002030| 6c 76 61 6c 75 65 20 3d | 20 6a 3b 0d 0a 09 09 09 |lvalue =| j;.....|
|00002040| 72 65 74 75 72 6e 20 4e | 4f 45 52 52 3b 0d 0a 09 |return N|OERR;...|
|00002050| 09 64 65 66 61 75 6c 74 | 3a 0d 0a 09 09 09 72 65 |.default|:.....re|
|00002060| 74 75 72 6e 20 45 52 52 | 4f 52 5f 53 59 4e 54 41 |turn ERR|OR_SYNTA|
|00002070| 58 3b 0d 0a 0d 0a 09 7d | 0d 0a 7d 0d 0a 0d 0a 2f |X;.....}|..}..../|
|00002080| 2f 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |/=======|========|
|00002090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000020a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000020b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000020c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0d 0a |========|======..|
|000020d0| 2f 2f 09 45 76 61 6c 75 | 61 74 65 0d 0a 2f 2f 0d |//.Evalu|ate..//.|
|000020e0| 0a 2f 2f 09 47 69 76 65 | 6e 20 61 20 70 6f 69 6e |.//.Give|n a poin|
|000020f0| 74 20 74 6f 20 61 20 74 | 65 78 74 20 62 75 66 66 |t to a t|ext buff|
|00002100| 65 72 2c 20 74 6f 6b 65 | 6e 69 7a 65 20 74 68 65 |er, toke|nize the|
|00002110| 20 22 65 78 70 72 65 73 | 73 69 6f 6e 22 20 61 6e | "expres|sion" an|
|00002120| 64 20 74 68 65 6e 20 65 | 76 61 6c 75 61 74 65 20 |d then e|valuate |
|00002130| 69 74 0d 0a 2f 2f 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |it..//==|========|
|00002140| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002150| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002160| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002170| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00002180| 3d 3d 3d 0d 0a 0d 0a 4f | 53 45 72 72 20 44 6f 45 |===....O|SErr DoE|
|00002190| 78 70 72 28 20 50 74 72 | 20 2a 69 73 50 74 72 2c |xpr( Ptr| *isPtr,|
|000021a0| 20 55 4c 4f 4e 47 20 2a | 61 6e 73 77 65 72 20 29 | ULONG *|answer )|
|000021b0| 0d 0a 7b 0d 0a 09 4f 53 | 45 72 72 20 09 65 72 72 |..{...OS|Err .err|
|000021c0| 6f 72 3b 0d 0a 09 74 6f | 6b 65 6e 20 09 09 2a 74 |or;...to|ken ..*t|
|000021d0| 73 50 74 72 3b 0d 0a 09 | 69 6e 74 20 65 6f 6c 20 |sPtr;...|int eol |
|000021e0| 3d 20 66 61 6c 73 65 3b | 0d 0a 0d 0a 09 74 73 50 |= false;|.....tsP|
|000021f0| 74 72 20 3d 20 54 6f 6b | 65 6e 53 74 72 65 61 6d |tr = Tok|enStream|
|00002200| 3b 0d 0a 09 65 72 72 6f | 72 20 3d 20 54 6f 6b 65 |;...erro|r = Toke|
|00002210| 6e 69 7a 65 45 78 70 72 | 65 73 73 69 6f 6e 28 20 |nizeExpr|ession( |
|00002220| 26 74 73 50 74 72 2c 20 | 28 63 6f 6e 73 74 20 63 |&tsPtr, |(const c|
|00002230| 68 61 72 20 2a 2a 29 69 | 73 50 74 72 20 29 3b 0d |har **)i|sPtr );.|
|00002240| 0a 0d 0a 09 69 66 28 20 | 65 72 72 6f 72 20 3d 3d |....if( |error ==|
|00002250| 20 45 52 52 4f 52 5f 45 | 4f 4c 20 29 09 2f 2f 20 | ERROR_E|OL ).// |
|00002260| 65 6f 6c 20 69 73 6e 27 | 74 20 72 65 61 6c 6c 79 |eol isn'|t really|
|00002270| 20 61 6e 20 65 72 72 6f | 72 2c 20 62 75 74 20 61 | an erro|r, but a|
|00002280| 20 66 6c 61 67 0d 0a 09 | 7b 0d 0a 09 09 65 72 72 | flag...|{....err|
|00002290| 6f 72 20 3d 20 4e 4f 45 | 52 52 3b 0d 0a 09 09 65 |or = NOE|RR;....e|
|000022a0| 6f 6c 20 3d 20 74 72 75 | 65 3b 0d 0a 09 7d 0d 0a |ol = tru|e;...}..|
|000022b0| 0d 0a 09 69 66 28 20 21 | 65 72 72 6f 72 20 29 0d |...if( !|error ).|
|000022c0| 0a 09 7b 0d 0a 09 09 74 | 73 50 74 72 20 3d 20 54 |..{....t|sPtr = T|
|000022d0| 6f 6b 65 6e 53 74 72 65 | 61 6d 3b 0d 0a 09 09 65 |okenStre|am;....e|
|000022e0| 72 72 6f 72 20 3d 20 45 | 76 61 6c 45 78 70 72 65 |rror = E|valExpre|
|000022f0| 73 73 69 6f 6e 28 20 61 | 6e 73 77 65 72 2c 20 26 |ssion( a|nswer, &|
|00002300| 74 73 50 74 72 20 29 3b | 0d 0a 09 7d 0d 0a 0d 0a |tsPtr );|...}....|
|00002310| 09 69 66 28 20 21 65 72 | 72 6f 72 20 26 26 20 65 |.if( !er|ror && e|
|00002320| 6f 6c 20 29 0d 0a 09 09 | 65 72 72 6f 72 20 3d 20 |ol )....|error = |
|00002330| 45 52 52 4f 52 5f 45 4f | 4c 3b 09 2f 2f 20 6e 65 |ERROR_EO|L;.// ne|
|00002340| 65 64 73 20 74 6f 20 62 | 65 20 72 65 74 75 72 6e |eds to b|e return|
|00002350| 65 64 0d 0a 0d 0a 09 72 | 65 74 75 72 6e 28 20 65 |ed.....r|eturn( e|
|00002360| 72 72 6f 72 20 29 3b 0d | 0a 7d 0d 0a 00 00 00 00 |rror );.|.}......|
|00002370| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002380| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F|
|00002390| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000023b0| 06 45 56 41 4c 2e 43 45 | 02 00 00 00 54 45 58 54 |.EVAL.CE|....TEXT|
|000023c0| 64 6f 73 61 01 00 00 00 | 00 00 00 00 00 00 34 c5 |dosa....|......4.|
|000023d0| 00 00 54 45 58 54 64 6f | 73 61 01 00 00 00 00 00 |..TEXTdo|sa......|
|000023e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000023f0| 00 00 af 7a 55 ed 00 00 | 22 ec 00 00 01 9a 6b 65 |...zU...|".....ke|
|00002400| 6e 69 7a 65 20 74 68 65 | 20 64 61 74 61 20 66 6f |nize the| data fo|
|00002410| 72 20 65 76 61 6c 75 61 | 74 69 6f 6e 0d 0a 2f 2f |r evalua|tion..//|
|00002420| 0d 0a 2f 2f 20 57 72 69 | 74 74 65 6e 20 62 79 20 |..// Wri|tten by |
|00002430| 4c 61 6e 65 20 52 6f 61 | 74 68 65 0d 0a 2f 2f 20 |Lane Roa|the..// |
|00002440| 28 63 29 20 43 6f 70 79 | 72 69 67 68 74 20 31 39 |(c) Copy|right 19|
|00002450| 39 35 20 49 64 65 61 73 | 20 46 72 6f 6d 20 74 68 |95 Ideas| From th|
|00002460| 65 20 44 65 65 70 2c 20 | 4c 74 64 2e 20 41 6c 6c |e Deep, |Ltd. All|
|00002470| 20 52 69 67 68 74 73 20 | 52 65 73 65 72 76 65 64 | Rights |Reserved|
|00002480| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00002490| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000024a0| 00 00 00 00 00 00 00 02 | 00 02 00 dd 01 01 02 fa |........|........|
|000024b0| 03 57 00 dd 01 01 02 fa | 03 57 af 82 01 d1 00 00 |.W......|.W......|
|000024c0| 1f ab 00 00 1f ab 00 00 | 1d ad 01 00 00 00 00 04 |........|........|
|000024d0| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T|
|000024e0| 00 00 00 46 09 87 1d 44 | 3c 3a 00 00 00 1c 00 46 |...F...D|<:.....F|
|000024f0| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..|
|00002500| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........|
|00002510| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........|
|00002520| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002530| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002540| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002550| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002560| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002570| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+